<?php


//封装一个图片上传函数
/**
*	@功能:   上传图片
*	@param1: 上传的文件名 
*	@param2: 上传成功的文件存放的文件路径名
*	@param3: 允文件上传的最大尺寸
*	@param4: 是否随机文件名
*	@param5: 允许的mime 类型 (数组)
*	@param6: 允许的文件后缀名 (数组) 
*	@返回值:  [1 , 上传成功的全路径] , 或 [0 , 错误信息]
*
*/

//function upload($key ,$mimeArray , $suffixArray , $maxSize ,$path , $isRand ) {
	
function upload($key , $path = './upload' , $maxSize = 1024 * 1024, $isRand = true, $mimeArray = ['image/png' , 'image/wbmp', 'image/jpeg','image/gif'] , $suffixArray = ['jpg', 'jpeg','jpe','bwmp','bmp','png','gif']) {
	
	//判断错误号
	$errors = $_FILES[$key]['error'];
	
	if ($errors) {
		
		switch ($errors) {
			
			case 1:
				$msg = '文件大小超过php.ini的限制';
				break;
			case 2:
				$msg = '文件大小超过html的限制';
				break;
			case 3:
				$msg = '文件部分被上传';
				break;
			case 4:
				$msg = '没有文件被上传';
				break;
			case 6:
				$msg = '找不到临时文件';
				break;
			case 7:
				$msg = '文件写入失败';
				break;
	
		}
		return [0 , $msg];
	}
	
	//判断文件大小
	if ($_FILES[$key]['size'] > $maxSize) {
		
		$msg2 = '文件过大';
		return [0 , $msg2];
	}
	
	//获取文件mime类型
	$mime = $_FILES[$key]['type'];
	
	//获取文件后缀名
	$name = $_FILES[$key]['name'];
	$arr  = explode('.' , $name);
	$suffix = array_pop($arr); 
	
	//判断文件类型
	if (!in_array($mime , $mimeArray)) {
		
		$msg3 = '不合法的mime类型';
		return [0 , $msg3];
	}
	
	//判断文件后缀名
	if (!in_array($suffix, $suffixArray)) {
		
		$msg4 = '不合法的后缀名';
		return [0 , $msg4];
	}
	
	//判断文件名是否随机
	if ($isRand) {
		
		$fileName = uniqid() . '.' .$suffix;
	} else {
		
		$fileName = $_FILES[$key]['name'];
	}
	
	//拼接存放文件的全路径
	$filePath = rtrim($path ,'/') . '/' .$fileName;
	//var_dump($filePath);
	
	//var_dump($_FILES[$key]['tmp_name']);
	//判断是否为上传文件
	if (is_uploaded_file($_FILES[$key]['tmp_name'])) {

		if (move_uploaded_file($_FILES[$key]['tmp_name'] , $filePath)) {
			
			//echo 111111111;
			return [1  , $filePath];
		} else {
			
			//echo 2222222222;
			$msg5 = '上传失败';
			return [0  , $msg5];
		}
		
	} else {
		
		$msg6  = '此文件不是上传文件';
		return [0 , $msg6];
	}

}

//测试
/*
var_dump($_FILES);
 $key = array_keys($_FILES);
 var_dump($key[0]);
 
//$res = upload($key = "$key[0]",  $mimeArray = ['image/png' , 'image/wbmp', 'image/jpeg','image/gif'] , $suffixArray = ['jpg', 'jpeg','jpe','bwmp','bmp','png','gif'] ,$maxSize = pow(1024 , 2), $path = './upload' ,$isRand = true );
$size = pow(1024 , 2);
$res = upload("$key[0]", $size ,$isRand = true, $path = './upload' );
 var_dump($res);
*/